//
//  UserAccount.swift
//  WeiboDemo
//
//  Created by Quentin Zang on 2020/3/16.
//  Copyright © 2020 臧乾坤. All rights reserved.
//

import Foundation

// 用户账户模型
class UserAccount: NSObject, NSCoding {
    
    // 用户授权的唯一票据，用于调用微博的开放接口，同时也是第三方应用验证微博用户登录的唯一票据，第三方应用应该用该票据和自己应用内的用户建立唯一影射关系，来识别登录状态，不能使用本返回值里的UID字段来做登录识别。
    var access_token: String?
    // access_token的生命周期（该参数即将废弃，开发者请使用expires_in）。
    var expire_in: TimeInterval = 0
    // 授权用户的UID，本字段只是为了方便开发者，减少一次user/show接口调用而返回的，第三方应用不能用此字段作为用户登录状态的识别，只有access_token才是用户授权的唯一票据。
    var uid: String?
    
    init(dict: [String: Any]) {
        super.init()
        setValuesForKeys(dict)
    }
    
    override func setValuesForKeys(_ keyedValues: [String : Any]) {
        var description: String {
            let keys = ["access_token","expire_in","uid"]
            return dictionaryWithValues(forKeys: keys).description
        }
    }
   
    func encode(with coder: NSCoder) {
        coder.encode(access_token,forKey: "access_token")
      }
      
      required init?(coder: NSCoder) {
        access_token = coder.decodeObject(forKey: "access_token") as! String
      }
    
}
